package com.it.project.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.it.common.annotation.Excel;
import com.it.common.core.domain.BaseEntity;

/**
 * 用户项目关联对象 it_user_project
 * 
 * @author it
 * @date 2024-07-15
 */
public class UserProject extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 用户名称 */
    @Excel(name = "用户名称")
    private String userName;

    /** 项目ID */
    @Excel(name = "项目ID")
    private Long proId;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String proName;

    /** 权限等级(0:普通用户,1:管理员,2:超级管理员) */
    @Excel(name = "权限等级", readConverterExp = "0=普通用户,1=管理员,2=超级管理员")
    private Integer permissionLevel;

    /** 最大生成激活码数量(0表示无限制) */
    @Excel(name = "最大生成激活码数量")
    private Integer maxActivationCount;

    /** 总积分 */
    @Excel(name = "总积分")
    private Integer totalPoints;

    /** 可用积分 */
    @Excel(name = "可用积分")
    private Integer availablePoints;

    /** 状态(0:禁用,1:启用) */
    @Excel(name = "状态", readConverterExp = "0=禁用,1=启用")
    private Integer status;

    /** 创建者 */
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新者 */
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 备注 */
    private String remark;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setUserName(String userName)
    {
        this.userName = userName;
    }

    public String getUserName()
    {
        return userName;
    }
    public void setProId(Long proId)
    {
        this.proId = proId;
    }

    public Long getProId()
    {
        return proId;
    }
    public void setProName(String proName)
    {
        this.proName = proName;
    }

    public String getProName()
    {
        return proName;
    }
    public void setPermissionLevel(Integer permissionLevel)
    {
        this.permissionLevel = permissionLevel;
    }

    public Integer getPermissionLevel()
    {
        return permissionLevel;
    }
    public void setMaxActivationCount(Integer maxActivationCount)
    {
        this.maxActivationCount = maxActivationCount;
    }

    public Integer getMaxActivationCount()
    {
        return maxActivationCount;
    }
    public void setTotalPoints(Integer totalPoints)
    {
        this.totalPoints = totalPoints;
    }

    public Integer getTotalPoints()
    {
        return totalPoints;
    }
    public void setAvailablePoints(Integer availablePoints)
    {
        this.availablePoints = availablePoints;
    }

    public Integer getAvailablePoints()
    {
        return availablePoints;
    }
    public void setStatus(Integer status)
    {
        this.status = status;
    }

    public Integer getStatus()
    {
        return status;
    }

    @Override
    public void setCreateBy(String createBy)
    {
        this.createBy = createBy;
    }

    @Override
    public String getCreateBy()
    {
        return createBy;
    }

    @Override
    public void setCreateTime(Date createTime)
    {
        this.createTime = createTime;
    }

    @Override
    public Date getCreateTime()
    {
        return createTime;
    }

    @Override
    public void setUpdateBy(String updateBy)
    {
        this.updateBy = updateBy;
    }

    @Override
    public String getUpdateBy()
    {
        return updateBy;
    }

    @Override
    public void setUpdateTime(Date updateTime)
    {
        this.updateTime = updateTime;
    }

    @Override
    public Date getUpdateTime()
    {
        return updateTime;
    }

    @Override
    public void setRemark(String remark)
    {
        this.remark = remark;
    }

    @Override
    public String getRemark()
    {
        return remark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("userName", getUserName())
            .append("proId", getProId())
            .append("proName", getProName())
            .append("permissionLevel", getPermissionLevel())
            .append("maxActivationCount", getMaxActivationCount())
            .append("totalPoints", getTotalPoints())
            .append("availablePoints", getAvailablePoints())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}